package clue

import (
	"context"
	pb "git.mycaigou.com/gfyx/micro-gfyx-oppty-service/proto/micro_gfyx_oppty_service_proto/micro-gfyx-oppty-service/clue"
)

type ClueServiceIface interface {
	//AddClueSourceFollow 联系人跟进转线索
	AddClueSourceFollow(ctx context.Context, request *pb.AddClueSourceFollowRequest) (bool, error)
	// ClueSave 新增/编辑线索
	ClueSave(ctx context.Context, request *pb.SaveClueRequest) (int64, error)
	// GetClueDetailByClueId 获取线索详情
	GetClueDetailByClueId(ctx context.Context, clueId int64) (*pb.GetClueDetailByClueIdResponse, error)
	// ClueList 线索列表
	ClueList(ctx context.Context, request *pb.GetClueListRequest) (*pb.GetClueListResponse, error)
	DeleteClue(ctx context.Context, request *pb.DeleteClueRequest) error

	GetClueTrackerList(ctx context.Context, request *pb.GetClueTrackerListRequest) (*pb.GetClueTrackerListResponse, error)
	SaveClueTracker(ctx context.Context, request *pb.SaveClueTrackerRequest) (int64, error)
	DeleteClueTracker(ctx context.Context, request *pb.DeleteClueTrackerRequest) error
	ReplaceChargeUser(ctx context.Context, request *pb.ReplaceChargeUserRequest) error
	GetInChargeUserList(ctx context.Context, _ *pb.GetInChargeUserListRequest) (*pb.GetInChargeUserListResponse, error)

	SaveClueContact(ctx context.Context, request *pb.SaveClueContactRequest) (int64, error)
	GetClueContactList(ctx context.Context, request *pb.GetClueContactListRequest) (*pb.GetClueContactListResponse, error)
	DeleteClueContact(ctx context.Context, request *pb.DeleteClueContactRequest) error
	GetClueContactDetailById(ctx context.Context, request *pb.GetClueContactDetailByIdRequest) (*pb.GetClueContactDetailByIdResponse, error)

	AddClueFollowRecord(ctx context.Context, request *pb.AddClueFollowRecordRequest) (int64, error)
	GetClueFollowRecordList(ctx context.Context, request *pb.GetClueFollowRecordListRequest) (*pb.GetClueFollowRecordListResponse, error)

	QueryExportClueBatchData(ctx context.Context, condition interface{}, batchNum, batchSize int32) (rowTitle []string, rowData [][]string, err error)
}
